const { app, BrowserWindow, ipcMain, shell } = require("electron");
require("@electron/remote/main").initialize();
const { createTray } = require("./windows");
const { startTaskMonitoring, stopAllTimers } = require("./function");
const configManager = require("./utils/config-manager"); // 添加配置管理模块

// 确保只有一个实例在运行
const gotTheLock = app.requestSingleInstanceLock();

// 禁用证书错误
app.commandLine.appendSwitch("ignore-certificate-errors");
app.commandLine.appendSwitch("allow-insecure-localhost");
app.commandLine.appendSwitch("disable-features", "OutOfBlinkCors");

if (!gotTheLock) {
  app.quit();
} else {
  // 应用程序事件处理
  app.whenReady().then(async () => {
    createTray();
    startTaskMonitoring(3000); // 3秒间隔监控任务
  });

  app.on("window-all-closed", () => {
    // 对于托盘应用，当所有窗口关闭时不退出应用，保持在后台运行
    // 在macOS上，通常保持应用活跃状态直到用户明确退出
    if (process.platform !== "darwin") {
      // Windows/Linux: 不调用 app.quit()，保持应用在后台运行
    }
  });

  app.on("activate", () => {
    if (BrowserWindow.getAllWindows().length === 0) {
    }
  });

  // 清理资源
  app.on("will-quit", () => {
    stopAllTimers();
  });
}

ipcMain.on("button-click", (event, data) => {
  shell.openExternal(data);
});
